package cn.tedu.tmall.front.mall.pojo.po;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 购物车数据类
 *
 * @author java@tedu.cn
 * @version 3.0
 **/
@Data
@NoArgsConstructor
public class CartPO implements Serializable {

    /**
     * 商品ID
     */
    private Long goodsId;

    /**
     * 商品数量
     */
    private CartInfo cartInfo;

    /**
     * CartPO构造方法，主要用于将从Redis中读取得到的Map<Object, Object>转换成对象
     *
     * @param goodsId  商品ID
     * @param cartInfo 购物车内商品信息
     */
    public CartPO(Object goodsId, Object cartInfo) {
        this.goodsId = Long.valueOf(goodsId.toString());
        this.cartInfo = (CartInfo) cartInfo;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class CartInfo {

        /**
         * 勾选状态，0=未勾选，1=已勾选
         */
        private Integer isChecked;

        /**
         * 商品数量
         */
        private Integer goodsNum;

        /**
         * 添加到购物车时的价格
         */
        private BigDecimal addToCartPrice;

    }

}
